Pacotes

Aula 3, M1

Carolina Musso

Sala de Situação - UnB

Até agora

  • Muitas coisas novas: Vamos recapitular, revisitar e aprofundar!

  • Lembre que é um curso numa ordem não muito usual…

Hoje: O que são pacotes

  • São como “extensões”, um conjunto de funções
  • Muitos coisas novas desenvolvidas desde 1993
  • Afinal, é muito difícil sempre atualizar o código base
  • Além disso, nem todo mundo precisa de tudo…

Sobre pacotes …

  • Usaremos muitos pacotes!

  • Vimos alguns no exercício da aula passada.

  • Dificilmente você fará as análises só com o Base

  • Dificilmente o pacote que você precisa não existe

  • Se não existir você pode desenvolver um um dia!

Estudo complementar

- [Sugestão de pacotes,

CRAN

- Você mesmo pode desenvolver um pacote e disponibilizar para a comunidade.

Github

  • Pacotes que não estão no CRAN

  • E/Ou versões ainda em desenvolvimento (mais recentes)

  • Um exemplo

Instalar e Carregar

  • Para utilizar um pacote é preciso instalá-lo (uma única vez) e depois carregá-lo (sempre que for usar)

Jeito clássico

# para instalar
install.packages("tidyverse") # precisa estar entre aspas

# para carregar
library(tidyverse) #pode estar entre aspas ou não

Pacote Pacman]

  • Mas nós vamos fazer de outro jeito!

  • Vamos usar um pacote que gerencia pacotes (eu disse que tinha pacotes para tudo!)

if (!require("pacman")) install.packages("pacman")
pacman::p_load("tidyverse")
  • Verifica a instalação e carrega! : Garantir reprodutibilidade e automatização.

  • O pacote é o pacman, a função que faz isso é o p_load.

Usamos isso na aula passada!

- Consegue identificar no código?

  • A cada novo pacote que resolvermos usar: basta adicionar lista inicial

  • Na primeira vez que rodar o script ele vai instalar, então vai demorar mais

pacman::p_load(tidyverse, data.table, flextable, officer)

O que são funções

- O pacote é um conjunto de funções… mas o que são funções?

  • “Funções em programação é um conjunto de instruções para simplificar uma tarefa repetitiva”

    • Geralmente têm cara de “verbo”
nome_da_função(argumento1="bla", argumento2="bla")
  • O R aceita os argumentos sem nome, se estiverem na ordem correta.
  • Calma: Voltaremos a esse assunto nas próximas aulas!

Um pacote do github

pacman::p_load_gh("cmusso86/UmPacoteAleatorio")

A única função dele…

mediaDificil(c(5,6))
[1] "0 NA foram removidos"
[1] "Media = 5.5"

Exemplos:

### Função de instalação

install.packages("tidyverse")
install.packages(pkgs="tidyverse")

Função de carregamento

. . .

pacman::p_load("tidyverse")
#OU
library(pacman)
p_load("tidyverse")

Outros exemplos

sqrt(9)
[1] 3
round(3.89, digits = 0 )
[1] 4
round(3.89,  0 )
[1] 4

Carregar pacotes

  • Para utilizar as funções deles

  • usar o library ou explicitar o nome do pacote antes da função

  • só carrega para aquela função

  • pode ser útil quando há conflitos entre pacotes

Conflitos entre pacotes

pacman::p_load(tidyverse, papeR)

cars %>% 
  summarise(media=mean(dist))
         N    Mean    SD   Min Q1 Median Q3 Max
1 speed 50   15.40  5.29     4 12     15 19  25
2  dist 50   42.98 25.77     2 26     36 56 120

Ele está usando o summarise() do pacote papeR.

cars %>% 
  dplyr::summarise(media=mean(dist))
  media
1 42.98

O pacote tidyverse

- Deixou a linguagem bem mais simples

RBase

head(cars[cars$speed>7,],3)
  speed dist
5     8   16
6     9   10
7    10   18

Com o tidyverse

cars %>% #isso chama pipe
  filter(speed>7) %>% 
  head(3)
  speed dist
1     8   16
2     9   10
3    10   18

O pipe

O pipe %>% é do pacote magrittr, mas!

  • Todo mundo gostou tanto que agora o Rbase tem um desde a verão 4.2

    • |>
  • Atalho no teclado: ctrl + m

  • Falaremos mais dele quando aprendermos mais funções!

Até a próxima aula!

  • Não se equeçam de fazer os exercícios e aprofundar as leituras!